Unity SDK
Добавьте AR Clip VPS в Unity-проект. SDK определяет положение пользователя на ваших VPS-картах и размещает контент в нужном месте на устройствах с ARKit (iOS) и ARCore (Android).
Что нужно
- Unity 2022.3 LTS или новее
- Тестовое устройство с поддержкой ARKit или ARCore
- Git LFS, если вы клонируете пример проекта (в нём большие ассеты)
Установка
Есть два способа.
Клонировать пример проекта
git clone https://github.com/WebAR-Studio/was-vps-unity.git
Откройте проект в Unity 2022.3 или новее. Сцены в Assets/Scenes показывают рабочие настройки.
Добавить через Package Manager
- Откройте Window → Package Manager.
- Нажмите + → Add package from Git URL….
- Вставьте
https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.
Unity скачает SDK в Packages/was-vps-unity.
Настройка сцены
- Создайте или откройте сцену, готовую для AR Foundation. В ней должны быть AR Session и AR Session Origin.
- Добавьте
VPSLocalisationServiceна пустой GameObject. Этот компонент выполняет локализацию. - В Inspector укажите:
AR SessionAR Session Origin- AR-камеру и привязки к интерфейсу, если они нужны (см. примеры сцен)
- Введите свой VPS API Key и хотя бы один Location ID.
- Необязательно: на время отладки включите Save Images Locally или Save Logs In File.
Нужен API-ключ?
Получите его на arclip.design или напишите на support@arclip.design.
Запуск локализации
Управляйте локализацией из своего скрипта. Добавьте компонент ниже и укажите ссылку на
VPSLocalisationService в Inspector.
using UnityEngine;
using WASVPS;
public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;
private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;
var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);
settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;
vpsService.StartVPS(settings);
}
private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}
private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}
Настройки в Inspector
| Свойство | Что делает | По умолчанию |
|---|---|---|
| Start On Awake | Запускает локализацию при загрузке сцены | false |
| Force Mock In Editor | При запуске в редакторе всегда использует тестовые данные | true |
| Send GPS | Добавляет GPS-данные устройства в каждый запрос к VPS | false |
| Fails Count To Reset | Сколько неудач подряд сбрасывают сессию | 5 |
| Save Images Locally | Сохраняет снятые кадры для отладки | false |
Проверка и отладка
- Включите
Force Mock In Editorи используйте тестовые текстуры из комплекта, чтобы проверять без устройства. - Вызовите
VPSLogger.SetLogLevel(LogLevel.VERBOSE), чтобы видеть HTTP-запросы, ответы и ошибки в консоли. - Если локализация так и не срабатывает, проверьте, что API-ключ действителен, а каждый ID локации соответствует вашей VPS-карте.
Примеры
- Рабочие примеры —
Assets/Scenes/TestScene.unityиAssets/Scripts/ExampleVPS.csв примере проекта. - Используйте позы VPS в своей логике: создавайте якоря, выравнивайте 3D-контент или обновляйте интерфейс.
Дальше: Платформы Unity — сборки для телефонов, шлемов и очков.